msr_content = msr->msr_items[VMX_INDEX_MSR_ ## address]; \
break
-#define CASE_WRITE_MSR(address) \
- case MSR_ ## address: \
- msr->msr_items[VMX_INDEX_MSR_ ## address] = msr_content; \
- if (!test_bit(VMX_INDEX_MSR_ ## address, &msr->flags)){ \
- set_bit(VMX_INDEX_MSR_ ## address, &msr->flags); \
- }\
+#define CASE_WRITE_MSR(address) \
+ case MSR_ ## address: \
+ { \
+ msr->msr_items[VMX_INDEX_MSR_ ## address] = msr_content; \
+ if (!test_bit(VMX_INDEX_MSR_ ## address, &msr->flags)) { \
+ set_bit(VMX_INDEX_MSR_ ## address, &msr->flags); \
+ } \
+ wrmsrl(MSR_ ## address, msr_content); \
+ set_bit(VMX_INDEX_MSR_ ## address, &host_state->flags); \
+ } \
break
#define IS_CANO_ADDRESS(add) 1
CASE_SET_REG(EBP, ebp);
CASE_SET_REG(ESI, esi);
CASE_SET_REG(EDI, edi);
+ CASE_EXTEND_SET_REG
case REG_ESP:
__vmwrite(GUEST_RSP, value);
regs->esp = value;